public class demo {
    /*public static void func() throws NullPointerException,
            ArrayIndexOutOfBoundsException{

    }*/

   /* public static void func()throws Exception{
        //代表全部异常-->有可能时编译异常,也有可能是运行异常
        int[] array = null;
        System.out.println(array.length);//空指针异常
    }
    *//*public static void main(String[] args) {
        func();//直接调用会报错-->无法知道到底是什么异常时,main方法会当作一个编译时异常来处理
    }*//*
    public static void main(String[] args) throws Exception{//此时交给JVM来判断
        func();
    }*/


   /* public static void func()throws NullPointerException,ArrayIndexOutOfBoundsException{
        int[] array = null;
        System.out.println(array.length);
    }

    public static void main(String[] args) {
        try {
            func();

            int[] arr1={1,2,3,4,5};
            System.out.println(arr1[9]);
        } catch (NullPointerException|ArrayIndexOutOfBoundsException e){
            *//*throw new RuntimeException(e);//给出异常类型*//*
            e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因。
            System.out.println("空指针|数组越界异常处理!");
        }finally {//不管怎么样,finally都会执行
            System.out.println("fianlly被执行");

        }
        System.out.println("after");
    }*/

    //表示父子类
/*    public static void main(String[] args) {
        try {
            func();

            int[] arr1={1,2,3,4,5};
            System.out.println(arr1[9]);
        }catch (Exception e){

        } catch (NullPointerException|ArrayIndexOutOfBoundsException e){
            *//*throw new RuntimeException(e);//给出异常类型*//*
            e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因。
            System.out.println("空指针|数组越界异常处理!");
        }
        System.out.println("after");
    }*/



    //finally返回
    public static int func(){
        try {
            return 10;
        }finally {
            return 30;
        }
    }
    public static void main(String[] args) {
        System.out.println(func());//返回finally的值
    }
}
